$(function(){
	var $tabList=$("#tab_list"),$pagebar=$("#pagebar ul"),$pageInfo=$("#page_info"),
		pageNo=1,pageSize=10,count=0;//初始值
	/**---------------封装分页方法,count:总条目数,pageNo:当前页---------------*/
	function pageit(count){
		$pagebar.empty();
		//首页和上一页
		if(pageNo==1){
			$pagebar.append("<li id='start_page' class='disabled'><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page'  class='disabled'><a href='javascript:void(0);'>上一页</a></li>");
		}else{
			$pagebar.append("<li id='start_page' pn=1><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page' pn="+(pageNo-1)+"><a href='javascript:void(0);'>上一页</a></li>");
		}
		var tmp=parseInt(count/10);
		var page_size=count%10==0?(tmp):(tmp+1);//总页数
		//中间数字页
		if(page_size<=5){
			//如果小于5页,则全部显示
			for(var i = 0; i <page_size; i++) {
				if(i==pageNo-1){
					$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}else{
					$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}
			}
		}else{
			//如果总页数大于5页,显示当前页和前后各两页以及两个...符号
			if(pageNo<3){
				for(var i = 0; i <5; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
			}else if(pageNo>page_size-2){
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
				for(var i = page_size-5; i <page_size; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}else{
				for (var i = pageNo-3; i <pageNo+2; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(pageNo)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}
		}
		//下一页和末页
		if(page_size==0||pageNo==page_size){
			$pagebar.append("<li id='next_page' class='disabled'><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' class='disabled'><a href='javascript:void(0);'>末页</a></li>");
		}else{
			$pagebar.append("<li id='next_page' pn="+(pageNo+1)+"><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' pn="+page_size+"><a href='javascript:void(0);'>末页</a></li>");
		}
		
		//绑定事件
		$pagebar.find("li").not(".disabled").on("click",function(){
			pageNo=parseInt($(this).attr("pn"));//更新当前页码
			reloadList();
		});
		//分页信息条
		$pageInfo.find("span").each(function(i,k){
			if(i==0){
				if(page_size==0){
					$(k).html(0);
				}else{
					$(k).html((pageNo-1)*10+1);
				}
			}else if(i==1){
				$(k).html(count>pageNo*10?pageNo*10:count);
			}else{
				$(k).html(count);
			}
		});
	}
	/**------------------加载列表---------------------*/
	var params={"pageNo":1,"pageSize":pageSize};
	function reloadList(){
		params.pageNo=pageNo;
		params.pageSize=pageSize;
		$.get(serverURL+"test/list",params,function(data){
			try {
				if(data.code==0){
					data=data.data;
					$tabList.find("tbody").empty();
					count=data.pagination.totalCount;
					if(count>0){
						var html="";
						$.each(data.list,function(i,k){
							html+="<tr>" +
								"<td id='pkc'><input type='checkbox' id='"+k.testId+"' class='checkbox' col='"+i+"'></td>" +
								"<td>"+((pageNo-1)*10+i+1)+"</td>" +
								"<td>"+k.title+"</td>"+ 
								"<td>"+k.content+"</td>"+
								"<td>"+(k.logo?("<a href='"+k.logo+"' target='_blank'><img src='"+k.logo+"'/></a>"):"无")+"</td>"+
								"<td>"+k.testCount+"</td>"+ 
								"<td>"+k.uploadTime+"</td>"+ 
								"<td><a href='"+ k.url+ "' target='_blank' ><div style='width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;'>"+ k.url+ "</div></a></td>"
								/*"<td><a class='btn btn-default btn-sm' href='"+serverURL+"question.htm?testId="+k.id+"' role='button'>测试管理</a></td>"+ */
							"</tr>";
						});
						$tabList.find("tbody").append(html);
//						$(".tools button").removeAttr("disabled");
					}else{
						$tabList.find("tbody").append("<tr><td colspan="+$("thead th").length+">无数据</td></tr>");
//						$(".tools button").not(".btn-default").attr("disabled","disabled");
					}
					pageit(count);//重绘工具栏
				}else if(data.code!=-1){
					alert("数据加载出错，请稍后重试");
				}
			} catch (e) {
				alert("数据加载出错，请稍后重试");
			}
		});
	}
	reloadList();
	//全选与取消全选
	$("#pkall").change(function(){
		if($(this).prop("checked")){
			$tabList.find("#pkc :checkbox").prop("checked",true);
		}else{
			$tabList.find("#pkc :checkbox").prop("checked",false);
		}
	});
	//获取选中的行
	function getSelectedCols(){
		return $tabList.find("#pkc :checkbox").filter(":checked");
	}

	/**---------------新增-----------------*/
	var $formAdd=$("#form_add"),$addTitle=$formAdd.find("[name=title]"),$addContent=$formAdd.find("[name=content]"),$addTestCount=$formAdd.find("[name=testCount]"),
	$addTestUrl=$formAdd.find("[name=url]"),$logo=$("#form_add2 input:file"),$logoScan=$("#logo_scan");
	function scanLogo(url){
		$logoScan.parent().parent().parent().show();
		$logoScan.attr("src",url).parent("a").attr("href",url);
	}
	function hideLogo(){
		$logoScan.attr("src","").parent("a").attr("href","");;
		$logoScan.parent().parent().parent().hide();
	}
	//上传文件
	var imgReg=/^.+\.(jpg|png|bmp|gif)$/;
	$logo.change(function(){
		if(!imgReg.test($logo.val())){
    		warnInput($logo);
			return false;
    	}
		$("#form_add2").ajaxSubmit({  
			dataType:'json',
			resetForm:true,
	        success:function(data){
	        	if(data.code==0){
	        		scanLogo(data.data);
	        	}else if(data.code!=-1){
	        		alert("图片上传失败，请重试");
	        		$("#form_add2").get(0).reset();
	        	}
	        } 
		});
	});
	//表单验证
	function checkAddForm(){
		if(!$addTitle.val()||($addTitle.val().length>20)){
			warnInput($addTitle);
			return false;
		}
		if(!$addContent.val()||($addContent.val().length>100)){
			warnInput($addContent);
			return false;
		}
//		if($addTitle.val().length>20){
//			alert("测试名不能超过20个字符");
//			return false;
//		}
		if(!$addTestCount.val()||isNaN(Number($addTestCount.val()))){
			warnInput($addTestCount);
			return false;
		}
//		if(isNaN(Number($addTestCount.val()))){
//			alert("测试基数必须为数字！");
//			return false;
//		}
		var reg= /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
		if(!$addTestUrl.val()||!reg.test($addTestUrl.val())){
			warnInput($addTestUrl);
			return false;
		}
//		if(!reg.test($addTestUrl.val())){
//			alert("url的格式不正确！");
//			return false;
//		}
		if(!$logoScan.attr("src")){
			warnInput($logo);
			return false;
		} 
		return true;
	}
	$("#btn_confirm_add").click(function(){
		if(checkAddForm()){
			$.post(serverURL+"test/add",{"title":$addTitle.val(),"content":$addContent.val(),"testCount":$addTestCount.val(),
				"logo":$logoScan.attr("src"),"url":$addTestUrl.val()},function(data){
				if(data.code==0){
					alert("添加成功");
					hideLogo();
					$("#modal_add").modal("hide");
					$formAdd.get(0).reset();
					reloadList();
				}else if(data.code!=-1){
					alert("添加失败，请稍后重试");
				}
			});
		}
	});	
    /**-------------修改测试信息-----------------*/
    var $formEdit=$("#form_edit"),$editTestId=$formEdit.find("[name=id]"),$editTitle=$formEdit.find("[name=title]"),$editContent=$formEdit.find("[name=content]"),$editTestCount=$formEdit.find("[name=testCount]"),
    $editUploadTime=$formEdit.find("[name=uploadTime]"),$editUrl=$formEdit.find("[name=editUrl]"),$logo2=$("#form_edit2 input:file"),$logoScan2=$("#logo_scan2");
    var uploadTime="";
    function scanLogo2(url){
		if(url){
			$logoScan2.parent().parent().parent().show();
			$logoScan2.attr("src",url).parent("a").attr("href",url);
		}
	}
	function hideLogo2(){
		$logoScan2.attr("src","").parent("a").attr("href","");;
		$logoScan2.parent().parent().parent().hide();
	}
	//上传文件
	$logo2.change(function(){
		if(!imgReg.test($logo2.val())){
    		warnInput($logo2);
			return false;
    	}
		$("#form_edit2").ajaxSubmit({  
			dataType:'json',
			resetForm:true,
	        success:function(data){
	        	if(data.code==0){
	        		scanLogo2(data.data);
	        	}else if(data.code!=-1){
	        		$("#form_edit2").get(0).reset();
	        		alert("图片上传失败，请重试");
	        	}
	        } 
		});
	});
    function checkEditForm(){
    	if(!$editTitle.val()){
    		warnInput($editTitle);
    		return false;
    	}

		if(!$editTitle.val()||($editTitle.val().length>20)){
			warnInput($editTitle);
			return false;
		}
		if(!$editContent.val()||($editContent.val().length>100)){
			warnInput($editContent);
			return false;
		}

		if(!$editTestCount.val()){
			warnInput($editTestCount);
			return false;
		}
		if(isNaN(Number($editTestCount.val()))){
			warnInput($editTestCount);
			return false;
		}
    	if(!$editUrl.val()){
    		warnInput($editUrl);
    		return false;  		
    	}
		var reg= /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
//    	var reg=/(?:http|ftp|rtsp|rtsp|igmp|file|rtspt|rtspu)?:?\/?\/?[0-9a-zA-Z]/;
		if(!reg.test($editUrl.val())){
			alert("url的格式不正确！");
			return false;
		}
    	if(!$logoScan2.attr("src")){
			warnInput($logo2);
			return false;
		} 
    	return true;
    }   
    $("#btn_edit").click(function(){
    	//获取选中的行		
		var $curCol=getSelectedCols();
    	if($curCol.length!=1){
    		alert("请选择一条记录进行操作");
    		return;
    	}
    	var id=$curCol[0].id;
    	//给隐藏域id赋值
    	$("#edit_id").val(id);
    	
    	$.get(serverURL+"test/get",{"testId":id},function(data){
    		if(data.code==0){
    			data=data.data;
    			uploadTime=data.uploadTime;
    			$editTitle.val(data.title);
    			$editContent.val(data.content);
    			$editTestCount.val(data.testCount);
    			$editUrl.val(data.url)
    			scanLogo2(data.logo);
    		
    			$("#modal_edit").modal("show");
    		}else if(data.code!=-1){
    			alert("测试信息加载失败");
    		}
    	});	
    });
    
    $("#btn_confirm_edit").click(function(){
    	//表单验证
    	if(checkEditForm()){
			$.post(serverURL+"test/modify",{"testId":$editTestId.val(),"title":$editTitle.val(),"content":$editContent.val(),"testCount":$editTestCount.val(),
				"logo":$logoScan2.attr("src"),"url":$editUrl.val(),"uploadTime":new Date(uploadTime)},function(data){
				if(data.code==0){
					alert("修改成功");
					$('#modal_edit').modal('hide');//隐藏模态框
					$formEdit.get(0).reset();
					reloadList();
				}else if(data.code!=-1){
					alert("修改失败，请稍后重试");
				}
			});
		}
    });
	/** ---------------置顶测试----------------- */
	$("#btn_top").click(function() {
		// 获取选中的行
		var $curCol = $tabList.find("#pkc :checkbox").filter(":checked");
		if ($curCol.length != 1) {
			alert("请选择一条记录置顶");
			return;
		}
		var id = $curCol[0].id;
		$.post(serverURL + "test/top", {"testId" : id}, function(data) {
			if (data.code == 0) {
				alert("置顶成功 !");
				reloadList();
			}else if(data.code!=-1){
				alert("置顶失败");
			}
		});
	});
    /**-----------------删除---------------*/
    $("#btn_del").click(function(){
    	//获取选中的行		
    	var $curCol=getSelectedCols();
    	if($curCol.length==0){
    		alert("请选择要操作的记录");
    		return;
    	}
        if (!confirm("确认要删除么？")) {
            return false;
        }
        var ids="";
        $curCol.each(function(i,k){
        	ids+=k.id+",";
        });
        ids=ids.substring(0, ids.length-1);
        
        $.post(serverURL + "test/del", {"ids" : ids}, function(data) {
			if (data.code == 0) {
				alert("删除成功!");
				reloadList();
			} else if (data.code != -1) {
				alert("删除失败");
			}
		});
	});
});
